home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir42 / eaglev1s.zip / READ.ME < prev   
Text File  |  1993-09-09  |  17KB  |  421 lines

  1.  
  2.  
  3.  
  4.                                 =========
  5.                                 = EAGLE =
  6.                                 =========
  7.                                 
  8. Unexpected Condition Tracking and Analysis Program for Paradox Database.
  9.                       Version 1s (shareware version)
  10.  
  11. Thanks for giving Eagle a try. We hope using the single-user version will
  12. convince you to purchase the network/developers version. This shareware version
  13. does not have network support and is not licensed for distribution with
  14. commercial applications. Purchasing the network/developer version of Eagle
  15. provides network support for Netbios and Novell networks (Banyan and LAN
  16. Manager soon) and gives the developer license to include Eagle for use with his
  17. or her applications without royalties.
  18.  
  19. Rowe Technology
  20. CompuServe:  72230,3014
  21. Internet: rrowe@halcyon.com
  22. 206-869-7693 (8am-8pm PST)
  23. Building D, #2021
  24. 4250 W. Lake Sammamish Pkwy., NE
  25. Redmond, WA  98052
  26.  
  27.  
  28. WHAT IS EAGLE?
  29. --------------
  30.  
  31. Eagle is an executable program which detects whether Borland's Paradox database
  32. program crashed from an Unexpected Condition or Refresh Exception. It keeps a
  33. log file of the user name, date and time, Unexpected Condition error message,
  34. and Eagle's own interpretation of that (undocumented) error message. This makes
  35. tracking (and hopefully correcting) Paradox Unexpected Conditions possible.
  36.  
  37. Eagle is not a TSR or NLM. The only requirement is that Eagle must be loaded
  38. immediately following Paradox (or Runtime) in a batch file. Eagle is compatible
  39. with all DOS versions of Paradox 3.0 or higher and Runtime, running single-user
  40. or on Novell or NetBios (Lantastic) networks.
  41.  
  42. When Eagle detects an Unexpected Condition it writes an unexpected condition
  43. log file, PDOXUC.LOG. This file may be used by itself or in conjunction with
  44. PDOXINFO.ZZZ, a post mortem dump file created by Paradox using the undocumented
  45. -DIAG command line switch. Unlike -DIAG, Eagle can specify the directory to
  46. contain PDOXUC.LOG and captures the user's name and time/date of the crash.
  47.  
  48. ANSWERS TO QUESTIONS RECENTLY ASKED ABOUT EAGLE:
  49. ------------------------------------------------
  50.  
  51. 1. Regarding how Eagle works: Does Eagle look for a PDOXINFO.ZZZ file upon exit
  52. from Paradox?
  53.  
  54. No, Eagle is not looking for a ZZZ file. In fact, it isn't even aware of ZZZ
  55. files. Eagle looks at that state of the machine after Paradox terminated. That
  56. is why it must follow immediately in the batch file.
  57.  
  58.  
  59.                                        1
  60.  
  61.  
  62.  
  63.  
  64. 2. With regard to Refresh Exceptions: How much info is provided and does that
  65. info truly lead to a resolution of the problem? 
  66.  
  67. Eagle keeps an itemized log of UC's and RE's in one place. It keeps a different
  68. set of information from what is in PDOXINFO.ZZZ. On a network, a UC or RE can
  69. cascade across workstations obscuring the original cause. Figuring out whose
  70. private directory to retrieve which ZZZ file from can be extremely difficult
  71. for the network administrator. Eagle can provide a chronological guide to your
  72. ZZZ files. Or, if you don't have ZZZ files it will provide your only guide to
  73. the problem.
  74.  
  75. 3. You say that the log file contains "Eagle's own interpretation" of the error
  76. message.  How detailed does this get?
  77.  
  78. A typical PDOXUC.LOG file entry is in this form:
  79.  
  80.  Netware:Robin (SW) Wed Mar 17 13:06:20 1993
  81.   Unexpected condition: File TEMP.DB was deleted -- Leaving Paradox
  82.   Hint: Table deleted by user shelled to DOS.
  83.  
  84. The first line gives the network type (Netware or Netbios) and the user's name
  85. according to that network. The (SW) indicates that SHARE.EXE and Windows were
  86. loaded. The second line is the UC message as it appeared on the user's screen.
  87. The third line is a typical cause for that particular error. Many obscure UC
  88. messages are unknown to Eagle and will not have an interpretation..
  89.   
  90. 4. What are the major benefits of Eagle to Paradox and Runtime application
  91. developers?
  92.  
  93. It frees you from being at the mercy of your users to report Unexpected
  94. Condition errors. You may be surprised how many more UC's are discovered with
  95. them being logged automatically.
  96.  
  97. Since Eagle creates a UC log file in a specified directory, your application
  98. startup code can use the existence of that file as a flag that indicates the
  99. application may be unstable.
  100.  
  101. The PDOXUC.LOG file can be easily imported into a Paradox table for statistical
  102. analysis by UC message, user, date, or time. Discover long term patterns.
  103.  
  104. Eagle provides a simple English error message, immediately interpreting common
  105. UC messages. The alternative is to ask Borland the meaning of the UC message,
  106. which may take weeks or even longer for a useful response.
  107.  
  108. 5. Will Eagle work on Banyan or IBM LAN Server?
  109.  
  110. It will not be able to detect the network or retrieve the network user name.
  111. This will decrease Eagle's utility, but it will still function otherwise.
  112. Banyan and LanMan support are under development.
  113.  
  114. 6. Will it work in the OS/2 DOS box?
  115.  
  116. It hasn't been tested in that environment.
  117.  
  118.  
  119.                                        2
  120.  
  121.  
  122.  
  123.  
  124. A SAMPLE UNEXPECTED CONDITION REPORT:
  125. -------------------------------------
  126.  
  127. Here is a list of UC's produced by importing an Eagle PDOXUC.LOG file into a
  128. Paradox table. This is from a mid-size Paradox network site collected over a
  129. three month period:
  130.  
  131.  UC Message                                                       Count
  132.  ---------------------------------------------------------------- ------
  133.  Corrupt memo block -- Leaving Paradox                               3
  134.  File CHANGED.DB was deleted -- Leaving Paradox                      1
  135.  File delete (I117) - j:\PDOXDATA\CTS\TEST.DB (code 2) -- L          1
  136.  File open (I104) - S:PARADOX.AUX (code 4) -- Leaving Parad          1
  137.  File open (I104) - T:PARADOX.AUX (code 4) -- Leaving Parad          4
  138.  File open (I104) - j:\pdoxdata\cts\Info.F2 (code 4) -- Lea          1
  139.  File open (I104) - j:\pdoxdata\home\glay\INIT.SC (code 3)           1
  140.  File open (I104) - j:\pdoxdata\home\rich\Newelig.WQ1 (code          1
  141.  File read (I113) -- Leaving Paradox                                 1
  142.  GP 0000 AT PARADOX:14:20f6 -- Leaving Paradox                       4
  143.  GP 0000 AT PARADOX:17:2512 -- Leaving Paradox                       1
  144.  GP 0000 AT PARADOX:20:00cc -- Leaving Paradox                       1
  145.  GP 0000 AT YOMDP:02:30e8 -- Leaving Paradox                         4
  146.  GP 0000 AT YOMDP:02:30ee -- Leaving Paradox                         4
  147.  GP 0000 AT YOMDP:02:3177 -- Leaving Paradox                         1
  148.  GP 0028 AT PARADOX:25:19c8 -- Leaving Paradox                       1
  149.  GP 0148 AT PARADOX:19:0704 -- Leaving Paradox                       1
  150.  .
  151.  .
  152.  .
  153.  Link range -- Leaving Paradox                                       3
  154.  Locking error (byte lock failure #1) B -- Leaving Paradox           1
  155.  Locking error (byte lock failure #1) J:\PDOXDATA\CTS\ACTIV          4
  156.  Locking error (byte lock failure #1) J:\PDOXDATA\CTS\BIOS9          1
  157.  Locking error (byte lock failure #1) J:\PDOXDATA\CTS\CREDI         23
  158.  .
  159.  .
  160.  .
  161.  Locking error (read failed) (null) -- Leaving Paradox               4
  162.  Locking error (read failed) A:\PARADOX.DIR -- Leaving Para          1
  163.  Locking error (read failed) J:\PDOXDATA\HOME\DONNA\PARADOX          1
  164.  .
  165.  .
  166.  .
  167.  Memo file creation failure -- Leaving Paradox                      11
  168.  Not enough memory to complete operation -- Leaving Paradox          6
  169.  Table Buffer (L11) -- Leaving Paradox                               3
  170.  delete - z:\CLIP\RICH\TEST\PARADOX.LCK (code 0) -- Leaving          1
  171.  deregf - c:\bad1022\PARADOX.DIR (code 0) -- Leaving Parado          1
  172.  .
  173.  .
  174.  .
  175.  imsizchange -- Leaving Paradox                                      1
  176.  noLockSeq - J:\PDOXDATA\CTS\ACTIVITY.DB (code 0) -- Leavin          5
  177.  noLockSeq - J:\PDOXDATA\CTS\ACTIVITY.DB (code 2) -- Leavin          1
  178.  
  179.                                        3
  180.  
  181.  
  182.  
  183.  
  184.  noLockSeq - J:\PDOXDATA\CTS\ORDERS.DB (code 0) -- Leaving          13
  185.  noLockSeq - J:\PDOXDATA\CTS\ORDERS.DB (code 2) -- Leaving           1
  186.  noLockSeq - J:\PDOXDATA\CTS\PRODUCT.DB (code 5) -- Leaving          1
  187.                                                                  ======
  188.                                                                    274
  189.  
  190. COPYRIGHT/LICENSING:
  191. --------------------
  192.  
  193. The Eagle program is Copyright 1992-1993 Rowe Technology. All rights reserved.
  194. This shareware version of Eagle, which does not include network support or
  195. distribution licensing may be placed on an electronic bulletin board system
  196. (BBS) and otherwise made available to the public. The network/developer version
  197. of Eagle is currently $79 (subject to change). Additional charge for shipment
  198. and taxes to foreign countries.
  199.  
  200. INSTALLATION:
  201. -------------
  202.  
  203. Copy the files (only Eagle.exe is necessary) from the diskette to your Paradox
  204. directory, or to a separate directory if you prefer.
  205.  
  206.     COPY A:\*.* C:\PDOX40
  207.     
  208. Modify the included PDOX40.BAT file or create a batch file to load Paradox with
  209. Eagle immediately following, similar to this:
  210.  
  211.     @ECHO OFF
  212.     ECHO Loading Paradox 4.0
  213.     C:
  214.     CD\PDOX40
  215.     PARADOX -DIAG %1 %2 %3
  216.     IF ERRORLEVEL 1 goto problem
  217.     EAGLE.EXE
  218.     goto quit
  219.     :problem
  220.     EAGLE.EXE
  221.     IF ERRORLEVEL 1 goto quit
  222.     ECHO Unexpected condition: "UNKNOWN ERROR"
  223.     EAGLE.EXE
  224.     :quit
  225.  
  226.  
  227. Starting in Paradox 4.0, Borland made changes which make it more difficult for
  228. Eagle to capture some errors (fortunately rare, such as UC:#449, can not access
  229. paradox.msg file). However, starting in Paradox 4.0, a DOS ERRORLEVEL is set if
  230. Paradox fails. Under versions of Paradox prior to 4.0 all that is necessary is
  231. to simply call Eagle immediately following Paradox. Using the ERRORLEVEL
  232. testing shown above is unnecessary, but does no harm with earlier versions.
  233. Using the ERRORLEVEL test above allows Eagle to log errors which Paradox has
  234. "cleaned up" to be undetectable.
  235.  
  236. UNEXPECTED CONDITION, WHAT NOW?
  237. -------------------------------
  238.  
  239.                                        4
  240.  
  241.  
  242.  
  243.  
  244.  
  245. Unexpected conditions can be extremely difficult to track down and correct. As
  246. with any problem, the first thing to do is try the obvious.
  247.  
  248. Steps to solve a Paradox Unexpected Condition problem:
  249.  
  250. 1. Kick all Paradox users off the system. Anyone left on the system may crash
  251. if you start deleting Paradox files from DOS.
  252.  
  253. 2. Delete all Paradox.net files. This file contains the count of the users
  254. logged on the system. It has "slots" into which serial numbers are inserted by
  255. each user logging into Paradox. Quattro Pro users also use this file if
  256. accessing Paradox tables. It can become corrupted. Paradox will create a new
  257. one that isn't corrupted if you delete this one. Generally, there should only
  258. be one net file on a system.
  259.  
  260. 3. Delete all Paradox.lck files. Paradox should delete all lck files when as
  261. users exit the system. Any that are left over are corrupt and should be
  262. deleted.
  263.  
  264. 4. Rebuild all tables. The TUtility program included with Paradox can diagnose
  265. and repair most tables that have become corrupted (generally by a power
  266. interruption or rebooting the machine while a table is open). The command line 
  267. TUTILITY -REBUILD -ALL  will verify all tables in the current directory and
  268. attempt repair on those found bad.
  269.  
  270. 5. Sometimes a table is damaged beyond repair. You better have backups.
  271.  
  272. 6. Sometimes TUtility thinks a table is ok which is actually bad. This was more
  273. of a problem in versions of Paradox prior to 4.0. In Paradox, export the table
  274. to an ASCII delimited file, empty the table, and import the data back in to it.
  275.  
  276. 7. If you are lucky, what happened was a user turned off their machine with a
  277. table open and now that it is repaired you won't have further trouble.
  278.  
  279. 8. Eagle may have captured the error that occurred and have hints for its
  280. diagnosis or correction. Look in the Pdoxuc.log file for help from Eagle.
  281.  
  282. 9. If you also took the precaution of loading Paradox with the -diag command
  283. line switch you may have a pdoxinfo.zzz file. See the next section for an
  284. explanation of the contents of this file.
  285.  
  286. 10. You may have network or hardware problems. Round up the usual suspects: bad
  287. NIC, bad cable, bad SIMM, bad hard drive, wrong NIC dip settings, etc. Don't be
  288. surprised if Paradox is the first program to fail on a system. Paradox works
  289. resources very hard. The culprit may be your system even though other software
  290. appears to function properly. Check your hardware and OS software settings.
  291. Make sure that users have the necessary rights, particularly if you have set
  292. limits on disk space usage.
  293.  
  294. One trick is to set up TUtility to run continuously in an endless batch file.
  295. Make a batch file called TEST.BAT like this:
  296.  
  297.     TUTILITY -VERIFY -ALL
  298.  
  299.                                        5
  300.  
  301.  
  302.  
  303.  
  304.     TEST.BAT
  305.  
  306. With all other Paradox users off the system leave this running on the suspect
  307. machine overnight. If it is still running normally in the morning your hardware
  308. and network is probably ok.
  309.  
  310. 11. Are you using the most stable version of Paradox available?
  311.  
  312. 12. Are you using the most stable settings for the version of Paradox you are
  313. using?
  314.  
  315. Turn off network refresh (using the Custom script to modify Paradox.cfg), set
  316. the sort order to ASCII, make sure each user has their own Paradox private
  317. directory. Watch out for network users who can log on more than once from
  318. multiple machines.
  319.  
  320. 13. Is there anything unusual about your setup? If you haven't solved the
  321. problem by now you may be facing a difficult chore. A divide and conquer
  322. approach is necessary. Strip out everything unnecessary from the system. Empty
  323. your TSR's, communication programs, and so forth out of the autoexec.bat and
  324. config.sys files. If you have a machine that you suspect, unplug it from the
  325. network. 
  326.  
  327. 14. Your system may be unstable in a way that you can't track down. Doing a
  328. cleanup of net and lck files each weekend is a pain but may keep you going
  329. until you can uncover the problem or a newer version of Paradox comes out.
  330.  
  331. 15. The numbered error messages such as UC:#359,  UC:#361, and UC:#449 mean
  332. that Paradox is unable to access its Paradox.msg file. This is often a
  333. defective network. If this doesn't seem to be the case, try putting the
  334. Paradox.msg file on the local hard drives and setting the search path of the OS
  335. to find the local copy. You may get a more informative error message if Paradox
  336. can access this file which contains the error messages (among many other
  337. things). It may also improve network performance.
  338.  
  339. If as an experiment you would like to deliberately create a numbered error
  340. message, do this:
  341.  
  342.     a. Copy Paradox.msg onto a floppy disk.
  343.     b. Temporarily rename Paradox.msg to something else.
  344.     c. Issue this DOS command:
  345.         APPEND A:\ /X:ON
  346.     d. Load Paradox. It will access the Paradox.msg on the floppy.
  347.     e. CoEdit a table (or begin some other operation).
  348.     f. Pop open the drive door on the floppy.
  349.     g. Press [F2].
  350.  
  351. To undo, simply reverse these steps and issue this DOS command:
  352.     APPEND ;
  353.  
  354. Depending on what you are doing when you pop the drive door, this technique can
  355. lock up your computer. You may have to reboot to regain control.
  356.  
  357. USING -DIAG:
  358.  
  359.                                        6
  360.  
  361.  
  362.  
  363.  
  364. ------------
  365.  
  366. There is an undocumented command line switch for Paradox which will create a
  367. post mortem dump file if Paradox has an Unexpected Condition. There appears to
  368. be no overhead or penalty for running this switch. Many developers use -DIAG
  369. routinely in their shipping applications and rely on it to help diagnose
  370. Unexpected Conditions. Borland says that this feature is "officially"
  371. undocumented and for their use only. This means Borland provides no technical
  372. support for it, and it doesn't always report accurately.
  373.  
  374. When loaded with the -DIAG command line switch, Paradox will create a
  375. PDOXINFO.ZZZ file after an Unexpected Condition. In Paradox 4.0 this file will
  376. be located in the user's private directory. For prior versions of Paradox it
  377. will be located in the work directory. Under Paradox 4.0, the format of this
  378. file changed slightly, and it is also generated if the PARADOX.CFG file is
  379. changed.
  380.  
  381. Paradox version 4.0 PDOXINFO.ZZZ files have the following sections:
  382.  
  383. 1. UC message: This Unexpected Condition message is usually, but not always,
  384. the same as the UC message displayed on the screen when Paradox crashes. Either
  385. the -DIAG or the real time message may be the more useful message of the two.
  386.  
  387. 2. Version: The exact version of Paradox.
  388.  
  389. 3. Memory utilization.
  390.  
  391. 4. Network info.
  392.  
  393. 5. Buffer utilization.
  394.  
  395. 6. Registered files with lock status.
  396.  
  397. 7. Procedure list.
  398.  
  399. 8. Script 'File' with location in script where Paradox failed. This is where
  400. you will generally want to start your diagnosis. The 'Line' is the line number
  401. and the 'Offset' is how many characters into the file (what word) your script
  402. crashed on. This information may or may not be accurate.
  403.  
  404. 9. Where: Procedure tree.
  405.  
  406. 10. Variable List: Every variable name ever defined whether in scope or not.
  407.  
  408. COPYRIGHT 1993 Rowe Technology 
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.                                        7
  420.  
  421.